//
//  StudyViewController.m
//  HappyBug
//
//  Created by liulei on 2018/12/1.
//  Copyright © 2018年 www.hc.com.cn. All rights reserved.
//

#import "StudyViewController.h"

/*
 
 day1  plist  读取 plist文件
 
 day 4
 控件继承-UIControl （addtarget）
 1  UISwitch 开关按钮
 
 sender.on  开关打开状态
 uiswitch.on =YES; 开
 带动画效果的打开开关
 uiswitch seton:yes anim :yes;
 
 
 2。iOS常用存储方式
   plist xml
   沙盒
   userdefault （偏好设置）
   归档解档
 
   沙盒：
    nstmpDictory()：当前tmp沙盒目录
    nshomeDictory()：当前应用app 沙盒根目录
    沙盒目录 每个目录存储数据不一样
 
   plist：
    存储：   文件（plist的文件）存储到沙盒。 whrite to file （nsarray 或者 nsdictory 类型的数据）
    获取：   获取沙盒里面的某个plist 里面的内容
 
 
    归档解档 ：存储自定义对象（一定要用归档解档进行存储）的容器
    @proper
    int。修饰 assin
    nsstring。修饰。copy
    自定义对象类 需要重写：
    NSCoding、 协议
    写入-归档-重写 encodewithCoder 方法
    读取-解档-重写 initwithCoder 方法

   注意 nsobject 没有遵守nscode 协议。uiview 遵守nscode 协议 -所以可以initwithcode
 
 
 3。UITabbarViewController  uitabbar 下面的bar 高度是 49
 
    adddChildViewController 核心添加bar 方法  v1 v2
 
 
    下面的条 - UITabbar UITabbar 会根据添加子控制器个数 分割成多个tabbarbutton
 
    tabbarbutton 的属性：title-标题文字 image-图标 selectImage-选中时候图标 badgevalue-提醒时候的数字
    例子：v1.tabbarItem.title =@"";
         v1.tabbarItem.image =image;
    tabbarbutton 默认选中以后 会是蓝色背景
 
    tabbarVC 和NavigationVC 一起使用
 
     qq 练习 demo
 
    demo中的知识点：
 
    [uiview  sizeToFit]; //自动布局 改变 图片或者里面的文字的 大小 和实际的图片 文字 一样大不设计xy，改变的是wh。
 
 -----------------------------------------------------------------------------------------------------

  day、5  2D 动画

 -----------------------------------------------------------------------------------------------------
 
   day、6 绘图
 
 -----------------------------------------------------------------------------------------------------

   day、7 手势-触摸 事件 传递
  iOS 事件 1。触摸。2 加速计事件（摇一摇）。3 远程控制
 
  //打印某个事件
    nsl@(%s,__func__);
   1。 触摸uiTouch
 
    uiTouch属性：
 
    UIView.window 属性。获取这个view 所在的window

    UIView - UIResponder 响应者类 -继承这个类的对象 -响应者对象（接受和处理事件）
 
    UIResponder接收事件：
 
    点击这个view时候
    touchbegin        touchmove      touchend       touchcancle-意外中断
 
    NSSet /NSArray  取出时候- 无序/有序
 
    NSSet 对象的。anyObject。取出 set集合里面的某个对象。
 
     UITouch 对象
 
     uiTouch方法：
 
    touch.anyobject -返回触摸对象
 
    CGpoint-- locationInView:(View)  基于某个传入的view 以这个点为坐标系返回 这次事件在这个坐标系的位置
 
    CGpoint--  previousLocationInView
 
     nsstringFromCGPont ：cgpoint
 
 
 
    //UIView 属性
    UIiew.center =CGPoint；
 
    如何计算偏移量： cgFloat X   AND   cgFloat Y  ===   CGPointMake（x，y）；==CGPoint
 
    //view 默认不支持多点触摸 需要打开这个属性
    multipleTouchEnabled
 
 -----------------------------------------------------------------------------------------------------
   day。8。动画 -(上节课手势识别)--手势识别基于触摸touch事件
 
   UIGestureRecognizer 手势识别基类    UIGestureRecognizerDelegate代理
 
        |- UITapGestureRecognizer (点击)。 sender： 通过父类属性。判断手势类型，方向
 
            NSUInteger  numberOfTapsRequired;   设置点击一次两次    // Default is 1.
            NSUInteger  numberOfTouchesRequired。设置几个手指点击
 
        |- UILongpressGestureRecognizer (长按)---UIGestureRecognizerState ：state
              NSUInteger  minimumPressDuration; 长按多长事件有反映。// Default is 0.5.
              CGFloat allowableMovement;  事件有效范围，超出没有事件。
 
        |- UISwipeGestureRecognizer (轻扫) -- 默认从左往右滑动 ：direction
 
                UISwipeGestureRecognizerDirection direction;---轻扫方向
 
 
        |- UIRotationGestureRecognizer (旋转)

        |- UIPinchGestureRecognizer (捏合,缩放)
 
        TranForm:
 
            CGAffineTransform

 
       |- UIPanGestureRecognizer (拖拽)

 
 ================================手势操作============================================================

 
   1 创建手势对象。2 给一个view 添加手势。3 实现手势方法
 
 
 ================================事件方法============================================================
 
  uibutton--->UIControl 点击和target点击方法
 
  uiview--> UIResponder 点击事件 可用用手势代替
 
 
 
 ==================================CALayer--在UIView的-图层=================================================

   ————CALayer 负责显示内容和动画 (显示出来的东西)
   ————UIView 负责监听响应事件 （本身没有颜色,看不见）
 
   UIView 不具备显示功能，是它内部的图层显示的功能。
 
 
    CALayer 属性-边框颜色 圆角。
 
 
 ==================================CoreAnim动画=================================================

 
 CoreAnim 动画:后台操作 不阻塞现场 直接作用在CALayer上 并不是view
 
   1 创建动画对象
   2 怎么做动画
   3。对哪个view的player上执行动画
 
 
                CAAnimation 动画基类
 
 
 
             一 。   CAProperAnim 属性动画
 
 
 CAProperAnim : 1 CABaseAnim     2 帧动画
 1  |——   CABaseAnim 属性动画 :  修改view的某一个属性 去执行动画。
 CABaseAnim 基本动画 -作用于CALayer 图层
 CABaseAnim 动画结束后 会回到原来的位置。默认
 
 
2   |——   CAKayframeAnim枕动画。（绕圆旋转动画）
    根据一个路径去执行贞动画。
 
             二。     CAAnimGroup组动画：多个动画一起执行
 
             三。     转场动画  CATranstion
 
  手势 initwithtarger
  动画。 alloc init
 
 CATransition *a =[[CATransition alloc]init];

 
 day 9  重力
 day 10  svn
 day 11 项目练习 1。转盘
 day 12 项目练习 2 彩票
 day 13 项目练习 3  彩票
 day 14 项目练习 4  彩票
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 */

@interface StudyViewController ()

@end

@implementation StudyViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    

    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end
